<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Str Class - Fuel Documentation</title>
	<link href="../assets/css/main.css" media="screen" rel="stylesheet" />
	<script type="text/javascript" src="../assets/js/jquery-1.4.4.min.js"></script>
	<script type="text/javascript" src="../assets/js/nav.js"></script>
	<script type="text/javascript" src="../assets/js/highlight.pack.js"></script>
	<script type="text/javascript">
		$(function() {
			show_nav('classes', '../');
		});
		hljs.tabReplace = '    ';
		hljs.initHighlightingOnLoad();
	</script>
</head>
<body>

	<header>
		<h1>Fuel Documentation</h1>
	</header>

	<div id="main-nav"></div>

	<section id="content">
		<h2>Str Class</h2>

		<p>The str class is a set of methods to help with the manipulation of strings.</p>

		<article>
			<h4 id="method_increment">increment($str, $first = 1)</h4>
			<p>The <strong>increment</strong> method allows you to append a number to the end of a string or increment that number if it already exists.</p>
			<table class="method">
				<tbody>
					<tr>
						<th class="legend">Static</th>
						<td>Yes</td>
					</tr>
					<tr>
						<th>Parameters</th>
						<td>
							<table class="parameters">
								<tr>
									<th>Param</th>
									<th>Default</th>
									<th class="description">Description</th>
								</tr>
								<tr>
									<th><kbd>$string</kbd></th>
									<td><em>required</em></td>
									<td>The string to increment.</td>
								</tr>
								<tr>
									<th><kbd>$first</kbd></th>
									<td><pre class="php"><code>1</code></pre></td>
									<td>The first number to increment with.</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th>Returns</th>
						<td>string</td>
					</tr>
					<tr>
						<th>Example</th>
						<td>
							<pre class="php"><code>$string = "filename";
Str::increment($string); // returns filename_1

$string = "filename_1";
Str::increment($string); // returns filename_2

$string = "filename";
Str::increment($string, 3); // returns filename_3
</code></pre>
						</td>
					</tr>
				</tbody>
			</table>
		</article>

		<article>
			<h4 id="method_random">random($type = 'alnum', $length = 8)</h4>
			<p>The <strong>random</strong> method generates a random string based on the type given.</p>
			<table class="method">
				<tbody>
					<tr>
						<th class="legend">Static</th>
						<td>Yes</td>
					</tr>
					<tr>
						<th>Parameters</th>
						<td>
							<table class="parameters">
								<tr>
									<th>Param</th>
									<th>Default</th>
									<th class="description">Description</th>
								</tr>
								<tr>
									<th><kbd>$type</kbd></th>
									<td><em>alnum</em></td>
									<td>The type of string to generate. Your choices are alnum, numeric, nozero, alpha, distinct, hexdec, unique, and sha1.</td>
								</tr>
								<tr>
									<th><kbd>$length</kbd></th>
									<td><pre class="php"><code>16</code></pre></td>
									<td>The number of characters you would like the final string to be (unique and sha1 ignore this parameter).</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th>Returns</th>
						<td>string</td>
					</tr>
					<tr>
						<th>Example</th>
						<td>
							<pre class="php"><code>// alnum (uppercase and lowercase letters mixed with numbers)
Str::random('alnum', 16);
// Returns: SvZi9Dh3lq7zQYim

// numeric (just numbers)
Str::random('numeric', 16);
// Returns: 1045343964672481

// nozero (just numbers excluding zero)
Str::random('nozero', 16);
// Returns: 3244623373994515

// alpha (just uppercase and lowercase letters)
Str::random('alpha', 16);
// Returns: LuVAXbmxQbbWoYqz

// distinct (uppercase letters and numbers that cannot be confused)
Str::random('distinct', 16);
// Returns: R79MPKMH4KTRN35J

// hexdec (hexadecimal characters a-f, 0-9)
Str::random('hexdec', 16);
// Returns: 09c34e42f36547f8

// unique (32 character string based on md5)
Str::random('unique');
// Returns: ed4bb844a35b7a4edb7eed0d3795d328

// sha1 (40 character string based on sha1)
Str::random('sha1');
// Returns: af5c5a8cc3be9a3180205c1ed2975015cd6cf1e7</code></pre>
						</td>
					</tr>
				</tbody>
			</table>
		</article>

		<article>
			<h4 id="method_truncate">truncate($string, $limit, $continuation = '...', $is_html = false)</h4>
			<p>The <strong>truncate</strong> method allows you to limit characters and provide a continuation string without breaking html.</p>
			<table class="method">
				<tbody>
					<tr>
						<th class="legend">Static</th>
						<td>Yes</td>
					</tr>
					<tr>
						<th>Parameters</th>
						<td>
							<table class="parameters">
								<tr>
									<th>Param</th>
									<th>Default</th>
									<th class="description">Description</th>
								</tr>
								<tr>
									<th><kbd>$string</kbd></th>
									<td><em>required</em></td>
									<td>The string to truncate.</td>
								</tr>
								<tr>
									<th><kbd>$limit</kbd></th>
									<td><em>required</em></td>
									<td>The number of characters to allow in the string.</td>
								</tr>
								<tr>
									<th><kbd>$continuation</kbd></th>
									<td><pre class="php"><code>'...'</code></pre></td>
									<td>The string to append to the end of the truncated string.</td>
								</tr>
								<tr>
									<th><kbd>$is_html</kbd></th>
									<td><pre class="php"><code>false</code></pre></td>
									<td>If the string contains html. Setting this as true will make the method not break html.</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th>Returns</th>
						<td>string</td>
					</tr>
					<tr>
						<th>Example</th>
						<td>
							<pre class="php"><code>$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
Str::truncate($string, 15); // returns Lorem ipsum dol...

$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
Str::truncate($string, 15, '...Read More'); // returns Lorem ipsum dol...Read More
</code></pre>
						</td>
					</tr>
				</tbody>
			</table>
		</article>

		<article>
			<h4 id="method_alternator">alternator(*$args)</h4>
			<p>Returns a closure that will alternate the values you've passed to this method as arguements, unless you
				call the closure with <kbd>false</kbd> as arguement - in which case it will just return the value
				without moving to the next and return the same value on the next call.</p>
			<table class="method">
				<tbody>
					<tr>
						<th class="legend">Static</th>
						<td>Yes</td>
					</tr>
					<tr>
						<th>Parameters</th>
						<td>
							<table class="parameters">
								<tr>
									<th>Param</th>
									<th>Default</th>
									<th class="description">Description</th>
								</tr>
								<tr>
									<th><kbd>*$args</kbd></th>
									<td><em>required</em></td>
									<td>As many arguements as you need to alternate</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th>Returns</th>
						<td>Closure</td>
					</tr>
					<tr>
						<th>Example</th>
						<td>
							<pre class="php"><code>$alt = Str::alternator('one', 'two', 'three', 'four');
echo $alt(); // outputs 'one'
echo $alt(); // outputs 'two'
echo $alt(false); // outputs 'three', but doens't move to the next as you can see in the next call
echo $alt(); // outputs 'three'
echo $alt(); // outputs 'four'
echo $alt(); // outputs 'one'
// etc...</code></pre>
						</td>
					</tr>
				</tbody>
			</table>
		</article>

		<article>
			<h4 id="method_lower">lower($str, $encoding = null)</h4>
			<p>The <strong>lower</strong> method converts all characters to lowercase.  It is equivalent to PHP's strtolower() for your specific character encoding.</p>
			<table class="method">
				<tbody>
					<tr>
						<th class="legend">Static</th>
						<td>Yes</td>
					</tr>
					<tr>
						<th>Parameters</th>
						<td>
							<table class="parameters">
								<tr>
									<th>Param</th>
									<th>Type</th>
									<th>Default</th>
									<th class="description">Description</th>
								</tr>
								<tr>
									<th><kbd>$string</kbd></th>
									<td><em>string</em></td>
									<td><em>Required</em></td>
									<td>The input string.</td>
								</tr>
								<tr>
									<th><kbd>$encoding</kbd></th>
									<td><em>string</em></td>
									<td><pre class="php"><code>null</code></pre></td>
									<td>The character encoding.</td>
								</tr>
							</table>
						</td>
					</tr>
					<tr>
						<th>Returns</th>
						<td>string</td>
					</tr>
					<tr>
						<th>Example</th>
						<td>
							<pre class="php"><code>Str::lower('User Data'); // returns 'user data'</code></pre>
						</td>
					</tr>
				</tbody>
			</table>
		</article>
        
	</section>

	<section id="footer">
		<p>
			<a href="http://fuelphp.com">Fuel</a> is released under the MIT license.<br />
			&copy; 2010 - 2011 Fuel Development Team
		</p>
	</section>

</body>
</html>
